package NGUYENVANDOAN.SWING_DEMO;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

public class VIEWS extends JFrame {

    private final JPanel contentPane;
    private final JTextField txtTenTruyCap;
    private final JPasswordField txtMatKhau;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    VIEWS frame = new VIEWS();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public VIEWS() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(
                VIEWS.class.getResource("/NGUYENVANDOAN/SWING_DEMO/Resources/book_edit.png")));
        setResizable(false);
        setTitle("ĐĂNG NHẬP CHƯƠNG TRÌNH");
        setBounds(100, 100, 451, 218);
        contentPane = new JPanel();
        contentPane.setBorder(new TitledBorder(null, "\u0110\u0103ng Nh\u1EADp", TitledBorder.LEADING,
                TitledBorder.TOP, null, Color.RED));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblNewLabel = new JLabel("Vui lòng nhập đầy đủ thông tin :");
        lblNewLabel.setFont(new Font("Cambria", Font.PLAIN, 14));
        lblNewLabel.setBounds(10, 26, 399, 14);
        contentPane.add(lblNewLabel);

        JLabel lblTnTruyCp = new JLabel("Tên truy cập:");
        lblTnTruyCp.setFont(new Font("Cambria", Font.PLAIN, 14));
        lblTnTruyCp.setBounds(10, 69, 86, 14);
        contentPane.add(lblTnTruyCp);

        JLabel lblMtKhu = new JLabel("Mật khẩu :");
        lblMtKhu.setFont(new Font("Cambria", Font.PLAIN, 14));
        lblMtKhu.setBounds(10, 105, 86, 14);
        contentPane.add(lblMtKhu);

        JButton btnDangNhap = new JButton("Đăng Nhập");
        btnDangNhap.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // Viết code tại đây
                // 1. Kiểm tra trạng thái điều khiển trên frame?
                if (txtTenTruyCap.getText().isEmpty()) {
                    JOptionPane.showMessageDialog(getParent(), 
                            "Bạn cần nhập vào tên truy cập");
                    /*JOptionPane.showMessageDialog(getParent(), 
                            "Bạn cần nhập vào tên truy cập", "Thông báo",
                            JOptionPane.ERROR_MESSAGE);
                    JOptionPane.showMessageDialog(getParent(),
                                    "Bạn cần nhập vào tên truy cập", 
                                    "Thông báo", 
                                    JOptionPane.WARNING_MESSAGE, 
                                    new ImageIcon(VIEWS.class
                                            .getResource("/NGUYENVANDOAN/SWING_DEMO/Resources/book_edit.png")));*/
                }
                else if (txtMatKhau.getText().isEmpty()) {
                    JOptionPane.showMessageDialog(getParent(), 
                            "Bạn cần nhập vào mật khẩu");
                }
                else{
                    //2. Thực thi kiểm tra tài khoản
                    //a. Khai báo & khởi tạo Controllers
                    CONTROLLERS objController = new CONTROLLERS();
                    
                    //b. Nhận các giá trị tại các điều khiển trên frame?
                    UserEntity objEntity = new UserEntity();
                    objEntity.setUserName(txtTenTruyCap.getText());
                    objEntity.setPassWord(txtMatKhau.getText());
                    
                    //c. Thực thi
                    if(objController.CheckUserInfor(objEntity)){
                        JOptionPane.
                                showMessageDialog(getParent(), 
                                        "Chúc mừng chuyên gia :D");
                    }
                    else{
                        JOptionPane.showMessageDialog(getParent(), 
                                            "Rất tiếc....");
                    }
                }
            }
        });
        btnDangNhap.setIcon(new ImageIcon(VIEWS.class
                .getResource("/NGUYENVANDOAN/SWING_DEMO/Resources/Login Manager32x32.png")));
        btnDangNhap.setFont(new Font("Cambria", Font.PLAIN, 14));
        btnDangNhap.setBackground(new Color(147, 112, 219));
        btnDangNhap.setBounds(184, 137, 149, 31);
        contentPane.add(btnDangNhap);

        txtTenTruyCap = new JTextField();
        txtTenTruyCap.setBackground(Color.ORANGE);
        txtTenTruyCap.setFont(new Font("Cambria", Font.PLAIN, 14));
        txtTenTruyCap.setColumns(10);
        txtTenTruyCap.setBounds(106, 64, 318, 25);
        contentPane.add(txtTenTruyCap);

        txtMatKhau = new JPasswordField();
        txtMatKhau.setForeground(Color.RED);
        txtMatKhau.setFont(new Font("Cambria", Font.PLAIN, 14));
        txtMatKhau.setBackground(SystemColor.textHighlight);
        txtMatKhau.setBounds(106, 102, 318, 23);
        contentPane.add(txtMatKhau);

        JButton btnThoat = new JButton("Thoát");
        btnThoat.setIcon(new ImageIcon(VIEWS.class.getResource("/NGUYENVANDOAN/SWING_DEMO/Resources/delete.gif")));
        btnThoat.setFont(new Font("Cambria", Font.PLAIN, 14));
        btnThoat.setBackground(new Color(186, 85, 211));
        btnThoat.setBounds(335, 137, 89, 31);
        contentPane.add(btnThoat);
    }
}
